/**
 * 维修类别
 */
Ext
		.onReady(function() {

			Ext.QuickTips.init();
			Ext.BLANK_IMAGE_URL = "/Car4S/resource/image/ext/s.gif";
			Ext.form.Field.prototype.msgTarget = 'qtip';

			var data_type = 2;
			var json_param = '{"type":"2"}';

			var sm = new Ext.grid.CheckboxSelectionModel({
				singleSelect : true
			});
			var cm = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), sm,
					{
						header : '维修类别',
						dataIndex : 'desp',
						sortable : true,
						width : 130
					}, {
						header : '标准工时费',
						dataIndex : 'remark',
						id : 'remark'
					} ]);
			var store = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : '/Car4S/DataLibaryAction_list.action',
				}),
				reader : new Ext.data.JsonReader({
					totalProperty : 'totalCount',
					root : 'root'
				}, [ {
					name : 'id'
				}, {
					name : 'desp'
				}, {
					name : 'type'
				}, {
					name : 'remark'
				} ])
			});

			var pagesize_combo = new Ext.form.ComboBox({
				name : 'pagesize',
				hiddenName : 'pagesize',
				typeAhead : true,
				triggerAction : 'all',
				lazyRender : true,
				mode : 'local',
				store : new Ext.data.ArrayStore({
					fields : [ 'value', 'text' ],
					data : [ [ 10, '10条/页' ], [ 20, '20条/页' ], [ 50, '50条/页' ],
							[ 100, '100条/页' ], [ 250, '250条/页' ],
							[ 500, '500条/页' ] ]
				}),
				valueField : 'value',
				displayField : 'text',
				value : '50',
				editable : false,
				width : 85
			});
			var number = parseInt(pagesize_combo.getValue());
			pagesize_combo.on("select", function(comboBox) {
				bbar.pageSize = parseInt(comboBox.getValue());
				number = parseInt(comboBox.getValue());
				store.reload({
					params : {
						start : 0,
						limit : bbar.pageSize,
						paramsCode : json_param
					}
				});
			});

			var bbar = new Ext.PagingToolbar({
				pageSize : number,
				store : store,
				displayInfo : true,
				displayMsg : '显示{0}条到{1}条,共{2}条',
				plugins : new Ext.ux.ProgressBarPager(), // 分页进度条
				emptyMsg : "没有符合条件的记录",
				items : [ '-', '&nbsp;&nbsp;', pagesize_combo ]
			});

			var grid = new Ext.grid.GridPanel({
				title : '<span class="commoncss">维修类别列表</span>',
				height : 510,
				store : store,
				region : 'center',
				margins : '3 3 3 3',
				loadMask : {
					msg : '正在加载表格数据,请稍等...'
				},
				stripeRows : true,
				frame : true,
				autoExpandColumn : 'remark',
				cm : cm,
				sm : sm,
				tbar : [ {
					text : '新增',
					iconCls : 'page_addIcon',
					handler : function() {
						codeWindow.show();
					}
				}, '-', {
					text : '修改',
					iconCls : 'page_edit_1Icon',
					handler : function() {
						ininEditCodeWindow();
					}
				}, '-', {
					text : '删除',
					iconCls : 'page_delIcon',
					handler : function() {
						deleteCodeItems();
					}
				}, '-', '->', {
					text : '查询',
					iconCls : 'previewIcon',
					handler : function() {
						queryCodeWindow.show();
					}
				}, '-', {
					text : '刷新',
					iconCls : 'arrow_refreshIcon',
					handler : function() {
						store.reload();
					}
				} ],
				bbar : bbar
			});

			store.on('beforeload', function() {
				Ext.apply(this.baseParams, {
					paramsCode : json_param
				});
			});
			store.load({
				params : {
					start : 0,
					limit : bbar.pageSize,
					paramsCode : json_param
				}
			});

			grid.addListener('rowdblclick', ininEditCodeWindow);
			/**
			 * 新增
			 */
			var codeWindow;
			var formPanel;

			formPanel = new Ext.form.FormPanel({
				id : 'codeForm',
				name : 'codeForm',
				defaultType : 'textfield',
				labelAlign : 'right',
				labelWidth : 110,
				frame : false,
				bodyStyle : 'padding:25 5 0',
				items : [ {
					fieldLabel : '维修类别',
					name : 'desp',
					anchor : '95%',
					// regex : /^[u4e00-u9fa5]+$/,
					// regexText : "只能输入汉字！",
					allowBlank : false,
					lankText : '请输入维修类别',
					emptyText : '请输入维修类别...',
					maxLength : 20
				}, {
					fieldLabel : '标准工时费',
					name : 'remark',
					anchor : '95%',
					allowBlank : false,
					lankText : '请输入标准工时费',
					emptyText : '请输入标准工时费...',
					maxLength : 100
				}, {
					fieldLabel : '类型',
					value : data_type,
					name : 'type',
					anchor : '95%',
					hidden : true,
					hideLabel : true
				} ]
			});

			codeWindow = new Ext.Window(
					{
						layout : 'fit',
						width : 300,
						height : 223,
						resizable : false,
						draggable : true,
						closeAction : 'hide',
						title : '<span class="commoncss">新增维修类别</span>',
						// iconCls : 'page_addIcon',
						modal : true,
						collapsible : true,
						titleCollapse : true,
						maximizable : false,
						buttonAlign : 'right',
						border : false,
						animCollapse : true,
						animateTarget : Ext.getBody(),
						constrain : true,
						items : [ formPanel ],
						buttons : [
								{
									text : '保存',
									iconCls : 'acceptIcon',
									handler : function() {
										if (codeWindow.getComponent('codeForm').form
												.isValid()) {
											var json = [];
											var jsonDataObj = codeWindow
													.getComponent('codeForm').form
													.getValues();
											json = Ext.encode(jsonDataObj)
													.toString();
											codeWindow.getComponent('codeForm').form
													.submit({
														url : '/Car4S/DataLibaryAction_add.action',
														waitTitle : '提示',
														method : 'POST',
														params : {
															paramsCode : json
														},
														waitMsg : '正在处理数据,请稍候...',
														success : function(
																form, action) {
															store.reload();
															Ext.Msg
																	.confirm(
																			'请确认',
																			'维修类别新增成功,您要继续添加吗?',
																			function(
																					btn,
																					text) {
																				if (btn == 'yes') {
																					codeWindow
																							.getComponent('codeForm').form
																							.reset();
																				} else {
																					codeWindow
																							.getComponent('codeForm').form
																							.reset();
																					codeWindow
																							.hide();
																				}
																			});
														},
														failure : function(
																form, action) {
															var msg = action.result.msg;
															Ext.MessageBox
																	.alert(
																			'提示',
																			'维修类别保存失败');
															codeWindow
																	.getComponent('codeForm').form
																	.reset();
														}
													});
										} else {
											// 表单验证失败
										}
									}
								},
								{
									text : '关闭',
									iconCls : 'deleteIcon',
									handler : function() {
										codeWindow.getComponent('codeForm').form
												.reset();
										codeWindow.hide();
									}
								} ]
					});

			/** *****************修改*********************** */

			var editCodeWindow, editCodeFormPanel;
			editCodeFormPanel = new Ext.form.FormPanel({
				labelAlign : 'right',
				labelWidth : 110,
				defaultType : 'textfield',
				frame : false,
				bodyStyle : 'padding:25 5 0',
				id : 'editCodeForm',
				name : 'editCodeForm',
				items : [ {
					fieldLabel : '维修类别',
					name : 'desp',
					anchor : '95%',
					// regex : /^[u4e00-u9fa5]+$/,
					// regexText : "只能输入汉字！",
					allowBlank : false,
					lankText : '请输入维修类别',
					emptyText : '请输入维修类别...',
					maxLength : 20
				}, {
					fieldLabel : '标准工时费',
					name : 'remark',
					allowBlank : false,
					lankText : '请输入标准工时费',
					emptyText : '请输入标准工时费...',
					anchor : '95%'
				}, {
					fieldLabel : '类型',
					name : 'type',
					value : data_type,
					anchor : '95%',
					hidden : true,
					hideLabel : true
				}, {
					fieldLabel : 'id',
					name : 'id',
					anchor : '95%',
					hidden : true,
					hideLabel : true
				} ]
			});

			editCodeWindow = new Ext.Window({
				layout : 'fit',
				width : 300,
				height : 218,
				resizable : false,
				draggable : true,
				closeAction : 'hide',
				title : '<span class="commoncss">修改维修类别</span>',
				modal : true,
				collapsible : true,
				titleCollapse : true,
				maximizable : false,
				buttonAlign : 'right',
				border : false,
				animCollapse : true,
				animateTarget : Ext.getBody(),
				constrain : true,
				items : [ editCodeFormPanel ],
				buttons : [ {
					text : '保存',
					iconCls : 'acceptIcon',
					handler : function() {
						updateCodeItem();
					}
				}, {
					text : '关闭',
					iconCls : 'deleteIcon',
					handler : function() {
						editCodeWindow.hide();
					}
				} ]

			});

			/** *****************查询*********************** */
			var queryCodeWindow, queryCodeFormPanel;
			var queryCodeFormPanel = new Ext.form.FormPanel({
				labelAlign : 'right',
				labelWidth : 60,
				defaultType : 'textfield',
				frame : false,
				bodyStyle : 'padding:25 5 0',
				id : 'queryCodeForm',
				name : 'queryCodeForm',
				items : [ {
					fieldLabel : '维修类别',
					name : 'desp',
					anchor : '95%'
				}, {
					fieldLabel : '类型',
					name : 'type',
					anchor : '95%',
					value : data_type,
					hidden : true,
					hideLabel : true
				} ]
			});

			queryCodeWindow = new Ext.Window(
					{
						layout : 'fit',
						width : 280,
						height : 180,
						resizable : false,
						draggable : true,
						closeAction : 'hide',
						title : '<span class="commoncss">查询维修类别</span>',
						modal : true,
						collapsible : true,
						titleCollapse : true,
						maximizable : false,
						buttonAlign : 'right',
						border : false,
						animCollapse : true,
						animateTarget : Ext.getBody(),
						constrain : true,
						items : [ queryCodeFormPanel ],
						buttons : [
								{
									text : '查询',
									iconCls : 'acceptIcon',
									handler : function() {
										queryCodeItem();
									}
								},
								{
									text : '关闭',
									iconCls : 'deleteIcon',
									handler : function() {
										queryCodeWindow
												.getComponent('queryCodeForm').form
												.reset();
										queryCodeWindow.hide();
									}
								} ]

					});

			/**
			 * 布局
			 */
			var viewport = new Ext.Viewport({
				layout : 'border',
				items : [ grid ]
			});

			/**
			 * 初始化代码修改出口
			 */
			function ininEditCodeWindow() {
				var record = grid.getSelectionModel().getSelected();
				if (Ext.isEmpty(record)) {
					Ext.Msg.alert('提示', '请先选中要修改的维修类别');
					return;
				}
				record = grid.getSelectionModel().getSelected();
				editCodeWindow.show();
				editCodeFormPanel.getForm().loadRecord(record);
			}

			/**
			 * 修改
			 */
			function updateCodeItem() {
				if (!editCodeFormPanel.form.isValid()) {
					return;
				}
				var json = [];
				var jsonDataObj = editCodeWindow.getComponent('editCodeForm').form
						.getValues();
				json = Ext.encode(jsonDataObj).toString();
				editCodeFormPanel.form.submit({
					url : '/Car4S/DataLibaryAction_edit.action',
					waitTitle : '提示',
					method : 'POST',
					params : {
						paramsCode : json
					},
					waitMsg : '正在处理数据,请稍候...',
					success : function(form, action) {
						Ext.Msg.alert('提示', '维修类别修改成功');
						editCodeWindow.hide();
						store.reload();
					},
					failure : function(form, action) {
						var msg = action.result.msg;
						Ext.MessageBox.alert('提示', '维修类别修改失败');
					}
				});
			}

			/**
			 * 删除
			 */
			function deleteCodeItems() {
				var rows = grid.getSelectionModel().getSelections();
				if (Ext.isEmpty(rows)) {
					Ext.Msg.alert('提示', '请先选中要删除的维修类别!');
					return;
				}
				// var strChecked = jsArray2JsString(rows, 'id');
				Ext.Msg.confirm('请确认', '你真的要删除该维修类别吗?', function(btn, text) {
					if (btn == 'yes') {
						// showWaitMsg();
						Ext.Ajax.request({
							url : '/Car4S/DataLibaryAction_delete.action',
							waitTitle : '提示',
							method : 'POST',
							waitMsg : '正在处理数据,请稍候...',
							success : function(response) {
								Ext.Msg.alert('提示', '维修类别删除成功');
								store.reload();
							},
							failure : function(response) {
								// var resultArray = Ext.util.JSON
								// .decode(response.responseText);
								// Ext.Msg.alert('提示', resultArray.msg);
								Ext.Msg.alert('提示', '维修类别删除失败');
							},
							params : {
								id : rows[0].get("id")
							}
						});
					}
				});
			}

			/**
			 * 根据条件查询
			 */
			function queryCodeItem() {

				var json = [];
				var jsonDataObj = Ext.getCmp('queryCodeForm').getForm()
						.getValues();
				json = Ext.encode(jsonDataObj).toString();
				json_param = json;
				// 翻页排序时带上查询条件
				store.on('beforeload', function() {
					Ext.apply(this.baseParams, {
						start : 0,
						limit : bbar.pageSize,
						paramsCode : json
					});
				});
				store.load({
					params : {
						start : 0,
						limit : bbar.pageSize,
						paramsCode : json
					}
				});
				queryCodeWindow.getComponent('queryCodeForm').form.reset();
				queryCodeWindow.hide();
			}

			/**
			 * 刷新
			 */
			function refreshCodeTable() {
				store.load({
					params : {
						start : 0,
						limit : bbar.pageSize,
						paramsCode : json_param
					}
				});
			}
		});

Ext.EventManager.on(window, 'load', function() {
	setTimeout(function() {
		Ext.get('loading').remove();
		Ext.get('loading-mask').fadeOut({
			remove : true
		});
	}, 200);

});